Android SDK API文档

本文档将详细介绍Android SDK的API,如果您想要了解如何接入,建议您阅读Android SDK 使用指南获得安装并使用SDK的方法。您可以在访问GitHub获取Android SDK的源代码。

最新版本为:2.2.0

更新时间为:2019-10-22


类: ThinkingAnalyticsSDK

概述

ThinkingAnalyticsSDK Android SDK, 使用ThinkingAnalyticsSDK 在应用里跟踪事件。

1. 初始化


public static ThinkingAnalyticsSDK sharedInstance(Context context, String appKey, String url)

说明:

用appid初始化ThinkingAnalyticsSDK实例,建议您首先在程序的入口初始化您的类。注意:在上传任何数据前,都必须先进行初始化。

参数:

appKey:您在后台获得的APP ID

url:数据上传的url


2. 获取实例

ThinkingAnalyticsSDK sharedInstance(Context context)

说明:

获取实例化对象,请在初始化完成后调用

返回值:

ThinkingAnalyticsSDK 实例


3. 追踪事件

public void track(String eventName)

说明:

上报一条事件数据,不设置任何属性(预置属性和公共属性仍会上传)

参数:

eventName:事件的名称,需要以字母开头,可以包括数字、字母及“_”,最大为50个字符


public void track(String eventName, JSONObject properties)

说明:

上报一条事件数据。

参数:

eventName:事件的名称,需要以字母开头,可以包括数字、字母及“_”,最大为50个字符

properties:事件的属性,是一个JSONObject对象,每个元素代表一个属性,key值为属性名,类型为String,value值为属性值,类型为String、Number、Boolean、Date


public void track(String eventName, JSONObject properties, Date time, final TimeZone timeZone)

说明:

上报一条事件数据。

参数:

eventName:事件的名称,需要以字母开头,可以包括数字、字母及“_”,最大为50个字符

properties:事件的属性,是一个JSONObject对象,每个元素代表一个属性,key值为属性名,类型为String,value值为属性值,类型为String、Number、Boolean、Date

time:事件触发的时间,类型为Date,传入的参数将替换默认选取的调用时本机时间作为事件触发时间

timeZone:触发时间的时区偏移,单位是小时


4. 记录事件时长

public void timeEvent(String eventName)

说明:

开始记录某个事件的时长,直到用户上传该事件为止,该事件中将会带有#duration这一预置属性,用以表示记录的时长,多次开始记录同一事件的时长将会以最后一次调用作为计时起点,

参数:

eventName:您需要计时的事件的名称,当使用track上传该事件名的事件时,计时停止,并上传计时数据。


5. 设置账号ID

public void login(String accountId)

说明:

设置用户的账号ID,设置后用户上传的数据中将带有#account_id这一字段,每次设置将会覆盖先前的账号ID,设置后的账号ID将会被保存,无需多次调用

请注意,该方法不会上传用户登录的事件,需要搭配track进行数据上报

参数:

accountId:您设置的账号ID,类型是String


6. 清空账号ID

public void logout()

说明:

清除账号ID,设置后用户上传的数据中将没有#account_id这一字段

请注意,该方法不会上传用户登出的事件,需要搭配track进行数据上报


7. 访客ID

7.1 设置访客ID

修改默认分配的访客ID

public void identify(String identifyId)

说明:

设置用户的访客ID,SDK默认以UUID作为用户的访客ID,每次设置将会覆盖先前的访客ID,设置后的访客ID将会被保存,无需多次调用

参数:

identifyId:您设置的访客ID


7.2 获取访客ID

获取当前的访客ID

public String getDistinctId()

说明:

获取用户当前的访客ID


8. 用户属性

8.1 设置用户属性

public void user_set(JSONObject properties)

说明:

设置用户属性,该属性有值则覆盖

参数:

properties:需要设置的用户属性,是一个JSONObject对象,每个元素代表一个属性,key值为属性名,类型为String,value值为属性值,类型为String、Number、Boolean


8.2 设置单次用户属性

public void user_setOnce(JSONObject properties)

说明:

设置用户属性,该属性有值则不写入

参数:

properties:需要设置的用户属性,是一个JSONObject对象,每个元素代表一个属性,key值为属性名,类型为String,value值为属性值,类型为String、Number、Boolean


8.3 累加用户属性

public void user_add(JSONObject properties)

说明:

对数值型的用户属性进行累加操作,输入负值相当于减法操作

参数:

properties:需要进行累加操作的用户属性,是一个JSONObject对象,每个元素代表一个属性,key值为属性名,类型为String,value值为属性值,类型为Number


public void user_add(String propertyKey, Number propertyValue)

说明:

对数值型的用户属性进行累加操作,输入负值相当于减法操作,只设置一个属性

参数:

propertyKey: 需要进行累加操作的用户属性名

propertyValue: 累加的属性值,输入负值相当于减法操作


8.4 重置用户属性

public void user_unset(String... properties);

说明:

对传入属性名的用户属性进行重置,即将值清空设置成NULL

参数:

properties:需要进行重置操作的用户属性名,类型是String


8.5 删除用户

public void user_delete()

说明:

在数据库中删除该用户,该操作可能产生不可逆的后果,请慎用


9. 公共事件属性

9.1 设置公共事件属性

public void setSuperProperties(JSONObject superProperties)

说明:

添加事件公共属性,设置后上传的事件都会带有这些事件公共属性。每次设置会将新的属性添加进公共属性中,之前设置的也将保留,如果多次设置同一属性,则取最后一次的设置值,事件公共属性的配置将会被保存,无需多次调用

参数:

superProperties:您添加的公共事件属性,是一个JSONObject对象,每个元素代表一个属性,key值为属性名,类型为String,value值为属性值,类型为String、Number、Boolean


9.2 删除公共事件属性

public void unsetSuperProperty(String superPropertyName)

说明:

删除已设置的事件公共属性

参数:

superPropertyName:需要删除的事件公共属性的属性名


9.3 清空公共事件属性

public void clearSuperProperties()

说明:

清空所有已设置的事件公共属性


9.4 获得公共事件属性

public JSONObject getSuperProperties()

说明:

返回所有已设置的事件公共属性

返回值:

已设置的所有事件公共属性的JSONObject


10. 设置上报数据的网络环境条件

public void setNetworkType(ThinkingdataNetworkType type)

说明:

设置在哪些网络环境下可以上报数据

参数:

type:枚举类ThinkingdataNetworkType,具体如下

public enum ThinkingdataNetworkType {
        NETWORKTYPE_DEFAULT,
        NETWORKTYPE_WIFI,
        NETWORKTYPE_ALL
    }

NETWORKTYPE_DEFAULT:默认设置,在3G、4G、Wifi状态下上报数据

NETWORKTYPE_WIFI:只在Wifi状态下上报数据

NETWORKTYPE_ALL:在2G、3G、4G、Wifi状态下上报数据


11. 自动采集事件

11.1 开启自动采集事件

public void enableAutoTrack(List<AutoTrackEventType> eventTypeList)

说明:

开启SDK的自动采集事件

参数:

eventTypeList:枚举AutoTrackEventType的列表,表示需要开启的自动采集事件类型,枚举定义如下

public enum AutoTrackEventType {
    APP_INSTALL("ta_app_install"),
    APP_START("ta_app_start"),
    APP_END("ta_app_end"),
    APP_CLICK("ta_app_click"),
    APP_VIEW_SCREEN("ta_app_view"),
    APP_CRASH("ta_app_crash");
    }

分别表示:

  • APP_INSTALLAPP安装事件
  • APP_STARTAPP启动事件
  • APP_ENDAPP关闭事件
  • APP_CLICKAPP控件点击事件
  • APP_VIEW_SCREENAPP页面浏览事件
  • APP_CRASHAPP崩溃

11.2 开启Fragment的页面浏览事件

public void trackFragmentAppViewScreen()

说明:

开启自动采集Fragment的页面浏览事件,需要在BaseFragment(基类)前添加注解 @ThinkingDataTrackFragmentAppViewScreen并复写方法才可使用

@ThinkingDataTrackFragmentAppViewScreen
public class BaseFragment extends Fragment {

    @Override
    public void onResume() {
    super.onResume();
    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    }

    @Override
    public void onHiddenChanged(boolean hidden) {
    super.onHiddenChanged(hidden);
    }
}

11.3 手动触发页面浏览事件

public void trackViewScreen(Activity activity)

public void trackViewScreen(android.app.Fragment fragment)

public void trackViewScreen(android.support.v4.app.Fragment fragment)

说明:

手动触发页面浏览事件

参数

需要触发页面浏览事件的页面


11.4 设置控件ID

public void setViewID(View view, String viewID)

public void setViewID(android.app.Dialog view, String viewID)

public void setViewID(android.support.v7.app.AlertDialog view, String viewID)

说明:

为控件设置控件ID,当控件触发控件点击事件时,上传的属性中将会带有该ID

参数

view:需要设置ID的控件 viewID:设置的控件ID


11.5 自定义控件点击事件的属性

public void setViewProperties(View view, JSONObject properties)

说明:

为控件设置自定义属性,当控件触发控件点击事件时,上传的属性中将会带有此处设置的自定义属性

参数

view:需要设置自定义属性的控件 properties:设置的自定义属性


11.6 忽略页面的自动采集事件

public void ignoreAutoTrackActivity(Class<?> activity)

public void ignoreAutoTrackActivities(List<Class<?>> activitiesList)

说明:

不上传某个或某些页面(Activity)的自动采集事件(包括页面浏览与控件点击事件)

参数

需要忽略的Activity或者Activity的列表


11.7 忽略某个类型控件的点击事件

public void ignoreViewType(Class viewType)

说明:

不上传某个类型控件的控件点击事件

参数

需要忽略的view的类型


11.8 忽略某个控件的点击事件

public void ignoreView(View view)

说明:

不上传某个控件的控件点击事件

参数

需要忽略的view


12. 与 H5 页面的打通

public void setJsBridge(WebView webView);

说明:

需搭配 JavaScript SDK使用,在初始化 WebView 时调用,可以让 Android SDK 上报在本WebView中 JavaScript SDK 采集到的数据,详情请查看H5 与 APP SDK 打通 一节。

参数

包含集成了JavaScript SDK 的H5页面的webView


接口:ScreenAutoTracker

概述

为页面浏览事件增加页面URL信息,以及其他自定义属性

public interface ScreenAutoTracker {
    /**
     * 返回值作为当前页面的Url信息
     * 作为该页面的URL以及下个页面的Referrer
     * @return String
     */
    String getScreenUrl();

    /**
     * 返回值为增加的自定义属性
     * @return JSONObject
     * @throws JSONException JSONException
     */
    JSONObject getTrackProperties() throws JSONException;
}

接口:ThinkingExpandableListViewItemTrackProperties

概述

ExpandableListView可以通过Adapter实现本接口,来为点击某item时触发的控件点击事件增加自定义属性。

public interface ThinkingExpandableListViewItemTrackProperties {
/**
* 增加点击 groupPosition、childPosition 处 item 时的属性
* @param groupPosition
* @param childPosition
* @return
* @throws JSONException
*/
JSONObject getThinkingChildItemTrackProperties(int groupPosition, int childPosition) throws JSONException;

/**
* 增加点击 groupPosition 处 item 时的属性
* @param groupPosition
* @return
* @throws JSONException
*/
JSONObject getThinkingGroupItemTrackProperties(int groupPosition) throws JSONException;
}

接口:ThinkingAdapterViewItemTrackProperties

概述

ListViewGridView可以通过Adapter实现本接口,来为点击某item时触发的控件点击事件增加自定义属性。

public interface ThinkingAdapterViewItemTrackProperties {
/**
* 增加点击 position 处 item 时的属性
* @param position
* @return
* @throws JSONException
*/
JSONObject getThinkingItemTrackProperties(int position) throws JSONException;
}

注解:@ThinkingDataTrackFragmentAppViewScreen

概述

BaseFragment(基类)前添加注解 @ThinkingDataTrackFragmentAppViewScreen,可开启自动采集Fragment的页面浏览事件


注解:@ThinkingDataTrackEvent

概述

在方法上加上注解@ThinkingDataTrackEvent,可在方法调用时上传自定义事件

参数:

eventName:类型是String,为上传自定义事件的事件名 properties:类型是String,为事件的属性,需以key:value的格式表达一个属性


注解:@ThinkingDataIgnoreTrackAppViewScreen

概述

ActivityFragment前加上注解@ThinkingDataIgnoreTrackAppViewScreen,将不再上传该页面的自动采集事件


注解:@ThinkingDataIgnoreTrackAppViewScreenAndAppClick

概述

Activity前加上注解@ThinkingDataIgnoreTrackAppViewScreenAndAppClick,将不再上传该页面的自动采集事件与该页面下的控件点击事件


注解:@ThinkingDataTrackViewOnClick

概述

如果是以android:onclick为控件(view)添加点击事件的调用方法,则可以在调用方法上添加注解@ThinkingDataTrackViewOnClick,当该调用方法被执行时,SDK将会上传控件点击事件

results matching ""

    No results matching ""